package ldh.im.base.pojo.where;

/**
 * @author: ldh
 * @date: 2024-03-21 10:36:17
 * @Description: 消息
 */

import ldh.im.base.pojo.ImMessage;

import java.util.Date;


public class ImMessageWhere extends ImMessage implements ldh.common.Orderable,ldh.common.Pageable{

	private long start;
	private int length = 10;
	private long pageNo;
	private int pageSize = length;
	private long end = start + pageSize;
	private String order;
	
	/**
	 * 开始时间： 创建时间
	 */
	private Date startCreateTime;
	
	/**
	 * 结束时间： 创建时间
	 */
	private Date endCreateTime;
	
	/**
	 * 开始时间： 接受时间
	 */
	private Date startReceiveTime;
	
	/**
	 * 结束时间： 接受时间
	 */
	private Date endReceiveTime;
	
	/**
	 * 开始时间： 更新时间
	 */
	private Date startUpdateTime;
	
	/**
	 * 结束时间： 更新时间
	 */
	private Date endUpdateTime;
	
	/**
	 * 开始时间： 消息同步时间
	 */
	private Date startClientUpdateTime;
	
	/**
	 * 结束时间： 消息同步时间
	 */
	private Date endClientUpdateTime;
	
	/**
	 * 开始时间： 事件同步时间
	 */
	private Date startActionUpdateTime;
	
	/**
	 * 结束时间： 事件同步时间
	 */
	private Date endActionUpdateTime;
	
	
	@Override
	public long getStart() {
		return start;
	}
	
	@Override
	public int getLength() {
		return length;
	}
	
	@Override
	public long getEnd() {
		return end;
	}

	@Override
	public long getPageNo() {
		return pageNo;
	}

    @Override
	public void setPageNo(long pageNo) {
		this.pageNo = pageNo;
		setPageSize(this.pageSize);
	}

	@Override
	public int getPageSize() {
		return pageSize;
	}

	@Override
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
		start = (pageNo - 1) * pageSize;
		if (start < 0) {
			start = 0;
		}
		length = pageSize;
		end = start + pageSize;
	}

	@Override
	public void setOrder(String order) {
		this.order = order;
	}

	@Override
	public String getOrder() {
		return order;
	}
	
	/**
	 * 设置开始时间： 创建时间
	 */
	public void setStartCreateTime(Date startCreateTime) {
		this.startCreateTime = startCreateTime;
	}
	
	/**
	 * 获取开始时间： 创建时间
	 */
	public Date getStartCreateTime() {
		return this.startCreateTime;
	}
	
	/**
	 * 设置结束时间： 创建时间
	 */
	public void setEndCreateTime(Date endCreateTime) {
		this.endCreateTime = endCreateTime;
	}
	
	/**
	 * 获取结束时间： 创建时间
	 */
	public Date getEndCreateTime() {
		return this.endCreateTime;
	}
	/**
	 * 设置开始时间： 接受时间
	 */
	public void setStartReceiveTime(Date startReceiveTime) {
		this.startReceiveTime = startReceiveTime;
	}
	
	/**
	 * 获取开始时间： 接受时间
	 */
	public Date getStartReceiveTime() {
		return this.startReceiveTime;
	}
	
	/**
	 * 设置结束时间： 接受时间
	 */
	public void setEndReceiveTime(Date endReceiveTime) {
		this.endReceiveTime = endReceiveTime;
	}
	
	/**
	 * 获取结束时间： 接受时间
	 */
	public Date getEndReceiveTime() {
		return this.endReceiveTime;
	}
	/**
	 * 设置开始时间： 更新时间
	 */
	public void setStartUpdateTime(Date startUpdateTime) {
		this.startUpdateTime = startUpdateTime;
	}
	
	/**
	 * 获取开始时间： 更新时间
	 */
	public Date getStartUpdateTime() {
		return this.startUpdateTime;
	}
	
	/**
	 * 设置结束时间： 更新时间
	 */
	public void setEndUpdateTime(Date endUpdateTime) {
		this.endUpdateTime = endUpdateTime;
	}
	
	/**
	 * 获取结束时间： 更新时间
	 */
	public Date getEndUpdateTime() {
		return this.endUpdateTime;
	}
	/**
	 * 设置开始时间： 消息同步时间
	 */
	public void setStartClientUpdateTime(Date startClientUpdateTime) {
		this.startClientUpdateTime = startClientUpdateTime;
	}
	
	/**
	 * 获取开始时间： 消息同步时间
	 */
	public Date getStartClientUpdateTime() {
		return this.startClientUpdateTime;
	}
	
	/**
	 * 设置结束时间： 消息同步时间
	 */
	public void setEndClientUpdateTime(Date endClientUpdateTime) {
		this.endClientUpdateTime = endClientUpdateTime;
	}
	
	/**
	 * 获取结束时间： 消息同步时间
	 */
	public Date getEndClientUpdateTime() {
		return this.endClientUpdateTime;
	}
	/**
	 * 设置开始时间： 事件同步时间
	 */
	public void setStartActionUpdateTime(Date startActionUpdateTime) {
		this.startActionUpdateTime = startActionUpdateTime;
	}
	
	/**
	 * 获取开始时间： 事件同步时间
	 */
	public Date getStartActionUpdateTime() {
		return this.startActionUpdateTime;
	}
	
	/**
	 * 设置结束时间： 事件同步时间
	 */
	public void setEndActionUpdateTime(Date endActionUpdateTime) {
		this.endActionUpdateTime = endActionUpdateTime;
	}
	
	/**
	 * 获取结束时间： 事件同步时间
	 */
	public Date getEndActionUpdateTime() {
		return this.endActionUpdateTime;
	}
}

